Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Send warnings to stderr and in yellow color in test and compiler.erlang tasks #14018

Conversation

eksperimental
Copy link
Contributor

There warnings were being sent to stdio. I am redirecting them to stderr and with yellow color.

IO.puts("#{file}:#{location_to_string(location)} warning: #{module.format_error(message)}")
message = "#{file}:#{location_to_string(location)} warning: #{module.format_error(message)}"

IO.puts(:stderr, IO.ANSI.format([:yellow, :bright, message]))
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The Elixir compiler does not wrap the the whole message in yellow, only the warning part, not in bright, and it ultimately uses another format, so I am not sure we should go for consistency here. We should probably be more consistent with the Erlang compiler warnings and error messages instead.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Well, I was going to mention that, but there are some parts where the whole warning is printed in yellow. So I was going to mention this in an issue itself. I can create the issue, or we can discuss it here.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Those are different warnings emitted by different places, and different on purpose, since they have implications. I would prefer to stay consistent within each library: Erlang, Mix, and Elixir.

Copy link
Contributor Author

@eksperimental eksperimental Nov 25, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I see. So what is the desired format for warnings in the Erlang and Mix library?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Probably the formats that we have right now? :) although I will double check if the Erlang one is still relevant.

@josevalim
Copy link
Member

Closing this for now. If the Erlang warnings could be updated, it should be done to match the Erlang compiler, so it is separate from this PR. Thank you!

@josevalim josevalim closed this Dec 10, 2024
@eksperimental
Copy link
Contributor Author

@josevalim I was waiting for your answer regarding your last comment. #14018 (comment)

If the Erlang warnings could be updated, it should be done to match the Erlang compiler, so it is separate from this PR.

I don't get this, since this PR it solely about Compilers.Erlang warnings.

@josevalim
Copy link
Member

This PR also changes mix test. Which is why I thought it is trying to make many of them consistent. :)

In any case, Erlang warnings should be consistent with warnings emitted by the Erlang compiler.

@eksperimental
Copy link
Contributor Author

Oh.. I see.
So to clear things up, do you agree with both changes? I can split them up in two separate PRs

@josevalim
Copy link
Member

To be clear, the only change we agree at the moment is to make the output of compile.erlang closer to the output of erlc, if they happen to be different today.

@eksperimental
Copy link
Contributor Author

What would be the reason to send warnings to stdio and not to stderr?

@josevalim
Copy link
Member

Unless erlc is sending them to stdout as well, it was probably a mistake.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

2 participants